# -*- coding: utf-8 -*-
'''
Created on Apr 2, 2012

@author: LONG HOANG GIANG
'''

import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
from CrawlerLib.http import Http
import commonlib
from urllib import urlretrieve
import datetime
from lxml import etree
import cStringIO as StringIO
import simplejson as json
import re

DOWNLOAD_PATH = '/o-long-vien-bo-2/'

def download(url, path, filename):
    if (path[-1] != '/'): path += '/'
    downloadPath = path+filename
    print '----- download: {0} to {1}'.format(url, downloadPath)
    if not os.path.isdir(path):
        os.makedirs(path, 0777)
    a, b = urlretrieve(url, downloadPath)
    print a, b

def save():
    tree = etree.parse(StringIO.StringIO(), parser=None, base_url=None)
    root = etree.Element("root");
    
    print root.tag
    print etree.tostring(root, encoding='utf-8', xml_declaration=True)



def getChapter(url, chapterNum, nameOfChapter):
    print 'getChapter {0}'.format(url)
    tree = Http.getXMLTree(url)
    
    listOfXpath = ["//div[@class='entry1']/p/img", "//div[@class='post-body entry-content']//img"]
    result = []
    
    if os.path.isfile('olongvienbo2.out'):
        f = open('olongvienbo2.out', 'r')
        try:
            result = json.load(f)
        except:
            pass
        f.close()
        
    chapterItem = {'name': nameOfChapter, 'images': []}
        
    for xpath in listOfXpath:
        ipos = 0
        for item in tree.xpath(xpath):
            src = commonlib.getAttribText(item, 'src')
            if src == '': continue
            if not re.search("\d+.*\.(jpg|JPG)", src): continue
            ipos += 1
            src = commonlib.urlJoin(url, src)
            fileName = "{0}.jpg".format(ipos)
            filePath = "{0}{1}/{2}".format(DOWNLOAD_PATH, chapterNum, fileName)
            download(src, '{0}{1}'.format(DOWNLOAD_PATH, chapterNum), fileName)
            chapterItem['images'].append(filePath)
    result.append(chapterItem)
    f = open('olongvienbo2.out', 'w')
    json.dump(result, f)
    f.close()

if __name__ == '__main__':
    
    doc = etree.Element("data")
    
    f = open('olongvienbo2.out', 'r')
    data = json.load(f)
    for item in data:
        item['chapter'] = item['name']
        del item['name']
        for img in item['images']:
            img = "{0}{1}".format('res/truyen', img)
            print img
        print item
    
    
    
    urls = [
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-1.html', 1, 'Nàng Tương Tư Chap 1'],
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-2.html', 2, 'Nàng Tương Tư Chap 2'],
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-3.html', 3, 'Nàng Tương Tư Chap 3'],
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-4.html', 4, 'Nàng Tương Tư Chap 4'],
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-5.html', 5, 'Âu Dương Tiểu Bạch Phần 1'],
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-6.html', 6, 'Âu Dương Tiểu Bạch Phần 2'],
            
            ['http://vc1.vechai.info/2011/03/o-long-vien-bo-2-chap-7.html', 7, 'Bộ Lạc Cỏ và Bộ Lạc Cúng'],
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-8.html', 8, 'Thái Lão Thạch và Thái Nhất Tâm'],
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-9.html', 9, 'Kinh Sư Đường'],
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-10.html', 10, 'Thái Bổ Đầu lập đại công'],
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-11.html', 11, 'Luân Hồi'],
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-12.html', 12, 'Mưa Ô Long Viện'],
            
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-13.html', 13, 'Ma quỷ truyền kỳ (A)'],
            ['http://vc1.vechai.info/2011/04/o-long-vien-bo-2-chap-14.html', 14, 'Ma quỷ truyền kỳ (B)'],
            ['http://doctruyen.vechai.info/o-long-vien-bo-2-chap-15/', 15, 'Ma quỷ truyền kỳ (C)'],
            ['http://doctruyen.vechai.info/o-long-vien-bo-2-chap-16/', 16, 'Ma quỷ truyền kỳ (D)'],
            ['http://doctruyen.vechai.info/o-long-vien-bo-2-chap-17/', 17, 'Thằng Nhãi Thò Lò'],
    ]
    #for url in urls:
    #    getChapter(url[0], url[1], url[2])
    print 'Finished at {0}'.format(datetime.datetime.now())
    os._exit(1)